package com.hb.trade.client.project;

import org.fzzn.core.model.msg.Message;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 费用交纳(退款)记录Client
 *
 * @author Lix1ang
 * @date 2022-2-11 16:27:53
 */
@FeignClient("hb-project")
public interface FeeClient {

    /**
     * 投标方根据标段Id与投标人Id查询记录
     *
     * @param feeRecord
     * @return
     */
    @RequestMapping("/feeRecord/getFeeRecord")
    Message getFeeRecord(@RequestBody Object feeRecord);

    /**
     * 费用缴纳记录保存
     *
     * @param feeRecord
     * @return
     */
    @RequestMapping("/feeRecord/saveFeeRecord")
    Message saveFeeRecord(@RequestBody Object feeRecord);

    /**
     * 根据项目Id或者标段Id统计各状态数量
     *
     * @param feeRecordDTO
     * @return
     */
    @PostMapping("/feeRecord/countFeeRecord")
    Message countFeeRecord(@RequestBody Object feeRecordDTO);

    /**
     * 获取费用交纳记录分页
     *
     * @param feeRecord
     * @return
     */
    @RequestMapping("/feeRecord/pageFeeRecord")
    Message pageFeeRecord(@RequestBody Object feeRecord);

    /**
     * 根据Id获取费用交纳记录
     *
     * @param feeRecordDTO
     * @return
     */
    @RequestMapping("/feeRecord/getFeeRecordById")
    Message getFeeRecordById(@RequestBody Object feeRecordDTO);

    /**
     * 审核通过
     *      根据主键Id 设置为已通过
     *
     * @param feeRecordDTO
     * @return
     */
    @RequestMapping("/feeRecord/pass")
    Message pass(@RequestBody Object feeRecordDTO);

    /**
     * 审核驳回
     *      根据主键Id 设置为已驳回
     *
     * @param feeRecordDTO
     * @return
     */
    @RequestMapping("/feeRecord/reject")
    Message reject(@RequestBody Object feeRecordDTO);

    /**
     * 退款
     *      根据主键Id 设置为已退款
     *
     * @param feeRecordDTO
     * @return
     */
    @RequestMapping("/feeRecord/refund")
    Message refund(@RequestBody Object feeRecordDTO);

    /**
     * 批量退款
     *
     * @param feeRecordDTO
     * @return
     */
    @PostMapping("/feeRecord/batchRefund")
    Message batchRefund(@RequestBody Object feeRecordDTO);
}
